#include <stdio.h>
#include <stdlib.h>
#include "grafo.h"
#include "simplex.h"


int main ()
{
    FILE* problema;
    int numero_de_nos, no_de_origem, no_de_destino, produto_escoado;
    int m, n, custo;
    int *arvore;
    vertice **grafo;
    int CNT;

    puts("EP1 - Simplex NetWork");
    puts("\tPressione 'enter' para ler o arquivo 'problema.dat'.");

    if(getchar()){

        problema = fopen("problema.dat", "r");
        if(problema == NULL){
            puts("'problema.dat' nao encontrado");
        }
        else{
            fscanf(problema, "%d", &numero_de_nos);
            fscanf(problema, "%d", &no_de_origem);
            fscanf(problema, "%d", &no_de_destino);
            fscanf(problema, "%d", &produto_escoado);
        }

        init_grafo(numero_de_nos);

        while(!feof(problema)){
            fscanf(problema, "%d %d %d", &m, &n, &custo);
            add_custo(custo, m, n);
        }
        print_grafo(numero_de_nos);
        if(find_path(no_de_origem, no_de_destino, numero_de_nos)){
                printf("\n\tProblema viavel\n");
                print_arvore();
        }
        else {
            printf ("\n\tProblema inviavel\n");
            exit (0);
        }

        print_cost(produto_escoado);
        arvore = get_arvore();
        grafo = get_grafo();
        CNT = get_count();
        simplex_network(numero_de_nos, no_de_origem, no_de_destino, arvore, CNT, grafo);
    }

    return 0;
}
